package com.itheima.homework;

import java.util.Scanner;

/**
 * 数字加密 数组进行反转用的不好 2种方法 1.是依次交换
 *                                 2.逆序赋值 存到另外一个数组
 */
public class Homework04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要加密的数据:");
        int code = sc.nextInt();
        int[] arr = new int[4];
        System.out.println("查看数组的内容");
        getArray(code,arr);
        getPassword(code,arr);
        System.out.println("加密后的数据为：" + arr[0] + arr[1] + arr[2] + arr[3]);
    }
    //反转数组 方法1 把数组第一个值和最后一个值交换 注意：使用另外一个变量来保存
    public static void getPassword(int code, int[] arr){
        int temp = 0;
        for(int i = 0;i < arr.length / 2; i++){
            temp = arr[i];
            arr[i] = arr[arr.length - i - 1];
            arr[arr.length - i - 1] = temp;

        }
    }
//    反转数组 方法2 逆序遍历
    public static void getPassword2(int code,int[] arr){
        int[] arr2 = new int[arr.length];
        for(int i = arr.length -1,j = 0 ;i > 0 ;i--,j++){
            //逆序输出到arr2数组
            arr2[j] = arr[i];
        }
        arr = arr2;

    }
    //将加密的数据拆分 录入数组arr 并打印数组
    // 加密后再打印一遍
    public static void getArray(int code,int[] arr){
        arr[0] = code / 1000 % 10;
        arr[1] = code / 100 % 10;
        arr[2] = code / 10 % 10;
        arr[3] = code % 10;
        //遍历数组 并打印数组的值
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
        System.out.println();
        arr[0] = (arr[0] + 5) % 10;
        arr[1] = (arr[1] + 5) % 10;
        arr[2] = (arr[2] + 5) % 10;
        arr[3] = (arr[3] + 5) % 10;
        System.out.println("打印加密后的数据（除了反转）");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
        System.out.println();
        }
    }

